Add San Mateo County General Assistance#8360
Open
hua7450 wants to merge 13 commits into
Open
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8360 +/- ##
============================================
+ Coverage 77.77% 100.00% +22.22%
============================================
Files 1 13 +12
Lines 9 166 +157
============================================
+ Hits 7 166 +159
+ Misses 2 0 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
hua7450
added a commit
to hua7450/policyengine-us
that referenced
this pull request
Jun 7, 2026
- Date couple grant ($454) at 2011-01-01 to match the stable single rate; document the frozen-standards rationale (single $336 unchanged since 2011). - Drop PAROLED_ONE_YEAR from qualified immigration statuses (time-limited parole conflicts with EHSD's 'no limitation on stay'); aligns with Santa Clara (PolicyEngine#8358) and San Mateo (PolicyEngine#8360) County GA. Add comment + test. - Re-anchor personal-property limit, fill-the-gap, and no-children references from the GA-80 brochure (which lacks those figures) to the EHSD program page. - Note only SSDI bars eligibility; OASDI retirement/survivors count as income. - Add tests: income=0 -> full $336, income==$336 -> ineligible/$0, three eligible adults -> single $336, personal property summed across members. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3 tasks
An initial applicant only needs to be employable or willing to seek and accept work, which we don't track, so the work requirement no longer gates eligibility. Remove the meets_work_requirements variable, its weekly_hours_threshold and senior_exemption_age parameters, and its test; strip the now-defunct is_in_work_program inputs from the surviving tests. Keep the is_in_work_program input variable as a reusable cross-program boolean (currently unused). Move the changelog fragment to the top-level ca-smc-ga.added.md and drop the redundant Alameda fix fragment (already on main). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #8359.
Summary
Adds San Mateo County General Assistance (SMC GA) as a local California cash assistance program.
Regulatory Authority
Eligibility
in_smcage >= minimum_age(parameter)ca_smc_general_assistance_immigration_status_eligible_person~has_minor_childssi == 0(already implies categorical + income test + takeup)~ca_capi_eligible_person<(per-applicant after scaling)<against flat limitPayment Standards
Per the C-335 chart, by living arrangement:
NMOHC-with-referral tracks the California SSI NMOHC rate (CDSS-set, annual Jan-1 COLA). Pre-2025 amounts are not in the available source PDFs; noted with an inline comment in
payment_standard.yaml.Property Rules
max(additional_vehicle_equity - $2,928, 0). PolicyEngine has only aggregatehousehold_vehicles_valueandhousehold_vehicles_owned, so the average-based proportional approximation is the only viable approach.Income and Benefit
(standard − per-person countable income) × n_eligible.Work Requirement
San Mateo GA imposes a work requirement, but for an initial applicant it is satisfied by being employable or willing to seek and accept work — the applicant does not have to be working (let alone full-time) at the time of application. Willingness/employability and ongoing work-program compliance are behavioral attributes we don't track at the moment, so the work requirement is assumed met and does not gate eligibility. Modeling it as a full-time-hours test would wrongly exclude the unemployed applicants the program is designed to serve.
Accordingly, this PR does not implement a work-requirement gate. The earlier
ca_smc_general_assistance_meets_work_requirementsvariable and itsweekly_hours_threshold/senior_exemption_ageparameters were removed.New cross-program input:
is_in_work_programA generic Person/MONTH boolean input (in
variables/household/demographic/person/, alongsideis_disabled,is_in_k12_school, etc.) for marking work-program participation (VRS Work Center, CalWORKs Welfare-to-Work, SNAP E&T, TANF work activities, ABAWD). It is not currently wired into SMC GA eligibility (the work requirement is assumed met), but is kept in this PR as a reusable building block for programs that later model work-program participation explicitly.Related Fix (Alameda County)
One pre-existing Alameda registry bug remains fixed in this PR:
programs.yamlparameter prefix:gov.local.ca.ala.ga→gov.local.ca.ala.general_assistance, to match the actual parameter folder structure.The earlier
in_ala.pycounty-string typo ("Alameda_COUNTY_CA"→"ALAMEDA_COUNTY_CA") was merged separately via #8594 and is no longer part of this diff. This branch has been merged up tomain. The singlechangelog.d/ca-smc-ga.added.mdfragment now covers the PR.Not Modeled (by design)
ssi == 0and~ca_capi_eligible_persongatesverified_start_year: 2025inprograms.yamlFiles
Test plan
make formatclean /ruff checkpasses